package top.zhangjianyong.blog.entity.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 博客评论实体类（支持多层级回复）
 *
 * @author zhangjianyong
 * @since 2024/12/19
 */
@TableName("blog_comment")
@Getter
@Setter
@Accessors(chain = true)
public class BlogComment extends BaseEntity {

  /** 博客ID */
  @TableField("blog_id")
  private Long blogId;

  /** 父评论ID，NULL表示顶级评论 */
  @TableField("parent_id")
  private Long parentId;

  /** 根评论ID，用于快速定位评论树 */
  @TableField("root_id")
  private Long rootId;

  /** 回复的用户ID */
  @TableField("reply_to_user_id")
  private Long replyToUserId;

  /** 回复的用户昵称 */
  @TableField("reply_to_nickname")
  private String replyToNickname;

  /** 评论层级，0为顶级评论 */
  @TableField("level")
  private Integer level;

  /** 评论路径，如：1/2/3 */
  @TableField("path")
  private String path;

  /** 评论者昵称 */
  @TableField("nickname")
  private String nickname;

  /** 评论者邮箱 */
  @TableField("email")
  private String email;

  /** 评论者网站 */
  @TableField("website")
  private String website;

  /** IP地址 */
  @TableField("ip")
  private String ip;

  /** 用户代理信息 */
  @TableField("user_agent")
  private String userAgent;

  /** 评论内容 */
  @TableField("content")
  private String content;

  /** 评论HTML内容 */
  @TableField("content_html")
  private String contentHtml;

  /** 状态: 0-待审核 1-已通过 2-已拒绝 3-已删除 */
  @TableField("status")
  private Integer status;

  /** 点赞数 */
  @TableField("like_count")
  private Integer likeCount;

  /** 直接回复数 */
  @TableField("reply_count")
  private Integer replyCount;

  /** 总回复数（包含所有子回复） */
  @TableField("total_reply_count")
  private Integer totalReplyCount;

  /** 是否为博主回复 */
  @TableField("is_author")
  private Integer isAuthor;

  /** 是否置顶 */
  @TableField("is_top")
  private Integer isTop;

  /** 是否热门 */
  @TableField("is_hot")
  private Integer isHot;
}
